home *** CD-ROM | disk | FTP | other *** search
- Version history of BSS.EXE
-
- 1.00 1st release to public
-
- 1.01 Fixed bug in hilighting file name. If user entered "BSS /F *.*",
- this caused a major problem. Made an additional binary check that
- looked for lines longer 150 characters.
-
- 1.02 Fixed bug with /B switch. This was caused by adding the additional
- binary check in previous version.
-
- 1.03 Added the number of records searched to the statistical info. Changed
- the way I was calling a couple of subroutines & deleted 1 level.
- call [call_find]
- call [call_string]
- This speeded it up a hair, which offset the speed reduction in
- adding the # of records found.
-
- 1.04 Added FILE SIZE, DATE, TIME of file when used in conjunction with the
- /F switch. Also added TOTAL BYTES searched, CPS (characters per sec.),
- & BYTES FREE on current drive.
-
- 1.05 Fixed code to handle screen sizes larger than 25 rows X 80 columns.
- Handled record counting different. Now using a lookup table for setting
- hilighting & reverse attributes.
-
- 1.06 Fixed a bug in record counting that popped up occasionally. Was hard
- to pin it down, because it was rather obscure. Disabled BYTES FREE on
- current drive, because I found that it didn't work properly on a
- Compaq (DOS v3.31 I think).
-
- 1.07 Fixed 3 bugs in conjunction with the screen pause function. Thanks
- to Ray Tackett's observation.
-
- 1.08 The /A switch was not doing what I intended it to. Also changed my
- logic on deciding whether it was a binary file or not. I am now
- looking in the 1st 4k of the file for lines longer than 134 characters,
- to determine this. Was finding it to fail with BBS listings w/some
- graphics characters. Was originally looking in the 1st K of the file
- for binary characters. Have found no difference in speed on my 386/33
- between scanning 1k the old way & 4k the new way. Maybe able to take
- advantage of the prelimary checking to speed up the search by holding
- an array of the EOL character positions.
-
- 1.09 Started using MASM 6.0 & Spontaneous 3.0 library. Changed the way I
- was storing the search strings. Am now using a linked list method.
- 4 byte overhead for each search string. This was changed in getting
- ready to add a /R=file.nam switch (redirect input search strings).
- Also added a /BF & /BN switch for only printing file names in a BBS
- type listing found &/OR the names of the files it found them in.
-
- 1.10 Change to the Compact memory model. This allows me to keep the
- extended information (/?) in a segment by itself, which in turn allows
- me to define larger arrays in the near segment for search strings.
-
- 1.11 The /R=file.nam switch is now working. Increased the search string
- buffer size to 24k. The maximum number of strings is 4096 (if they
- were all 2 characters in each string), more typically 1755 if all the
- strings were 5 characters each. Fixed minor bug with the /B switch.
- If there were blank lines in the description such as compuserve
- listings, it would stop at the 1st blank line.
-
- 1.12 Added /FS switch for outputting only the size of directories instead
- of printing file names as well.
-
- 1.13 Added another error message. Put the /FS switch in the help display.
- Fixed a nasty bug that has been in there awhile, but just never ran
- across it until using the /R=ASCII.IN (this is a file containing all
- ascii chars.). If you entered 2 search strings that were the same
- (or mixed case but otherwise the same if you weren't using /E), it
- would potentially lock up. Added a check for duplicates routine to
- fix this. Added code to check for another program running BSS (like
- the run command under windows)an added a pause at the end only if you
- were using the /P switch.
-
- 1.14 Fixed a couple of output format problems. File & subdirectory sizes
- were not right justified when output to a file. Changed the
- call cput_chr
- TO
- call [call_outchr]
- Also fixed it so the statistics went to the output file. Was closing
- the output file before calling the statistics routine. Have mixed
- emotions about putting it in the output file versus the screen (maybe
- another switch for this?).
-
- 1.15 Turned off printing file names for the /F switch if the /T switch was
- used.
-
- 1.16 Fixed a bug that would not print a match on the last line of an ASCII
- file if it was not terminated w/a CR,LF. Added UNIX file type
- compatibilty (they only use LF character instead of CR,LF)
-
- 1.17 Added /J switch. Print JUST strings that match, nothing else.
-
- 1.18 Fixed a divide by zero bug on calculating cps. This did not lock it
- up or anything, only displayed an erroneous number, which turns out to
- be 2 to the 64 power. This only occurred on a fast machine that said
- it finished in 0 length of time. To fix this problem I just added
- 1 millisecond to the elapsed time.
- ===============================================================================
- 7,822 bytes 18,446,744,073,709,551,516 cps
- Files: 1 Records: 275 Matches: 0 Elapsed Time: 00:00:00.00
-
- 1.19 Fixed an error in the calculating cps routine, that I created by
- fixing the divide by zero. Speeded up the search routine by 3% for
- non case-sensitive searches by using a 256 byte lookup table.
-
- 1.20 added .procs & .endp to all the functions I created, in order to run
- it thru the profiler & get some descent information out of it.
-
- min_search dw 0 ;minimum search string length
- 1.21 added a minimum search string length variable, but doesn't quite work
- the way I want it to, yet.
-
- 1.22 took out the second of the following 2 lines:
-
- add word ptr [sub_records],1
- add word ptr [sub_records+2],0
-
- Since my addition could never go beyond 8192, so it was pointless to
- do so.
-
- 1.23 added some preliminary changes for re-using a wildcard routine for dos
- file names as well as search strings. Upped the size of the
- environmental string from 150 to 255. Added printing the statistical
- info to the output file if /J switch was not used.
-
- 1.24 rewrote the find_end routine & the way it was being implimented in
- hopes of speeding it up, but it was 20% slower instead. I'll put that
- idea aside for now.
-
- 1.25 replaced the switch /L LEAVE screen alone (Do not use STATUS line)
-
- with:
- /L:*? wiLd search (the * & ? can be any 2 characters you wish to use)
- this version still has some bugs in it though
-
- 1.26 got most of the bugs out of the wild search part, but while testing
- this, found a bug in my hi-lighting routine, which I'll have to fix.
-
- 1.27 re-wrote one the hilighting routines & fixed all the bugs that I could
- find so far with the wild search routine. 1st release to 14 beta
- testers on the internet.
-
- 1.28 fixed 2 major bugs. One of which Fons en Willem found by doing
- something I wasn't expecting. He pointed me right to address where
- the error occured. Was not checking beyond the limit of the array.
- The other bug happened only in conjunction with the /L switch, in it's
- worst case it would get in an endless loop,but would also not hilight
- text properly in some cases. Also fixed another minor bug that Fons
- found. BSS /O=BSS.DOC /? paused before exiting. Not released
-
- 1.29 added line numbering feature "/#=n" where n equals the number of columns
- to reserve for right justifying the line number (5 is the default)
- & will leave one space between the number & line of text. Text wraps
- to beginning of next line. Will change this soon to line up with
- beginning of previous line. Not released
-
- 1.30 Changed the way the pause message displayed when using the /P switch.
- I now temporarily move the status line to bottom of page for the pause
- only, then switch it back to the top. David Morlitz pointed out that
- it was not readily apparent that the program was paused. Also fixed
- a bug when using "/P:15" or any other number did not work correctly.
-
- 1.31 Added "/C:#" & "/K" switch & fixed a few bugs
-
- 1.32 Added "/WP" & "/WR:#"
-
- 1.33 Added a few more error checks. Took out all the NOP's
-
- 1.34 Fixed a bug in the "/C" switch if a matching string was found before
- it got the correct column, it would not find the next 1. Set it so
- it starts looking in the column specified & if you are not using
- the "/L" switch, it uses the length of the search string for the
- loop counter. This also improves the speed for this. Also partially
- fixed a bug in the "/W" switch. If you used something like "/W:0,1",
- & it found a match on the line following the matched line, it did not
- increase the window by 1 or hilight it.
-
- 1.35 Fixed the "/W:0,1" bug hopefully. Had to write a couple of short
- subroutines. Also fixed a bug with the "/B" switch.
-
- 1.36 Fixed the bug of doing a directory search from another directory.
- Also added the ability to do multiple directory searches.
-
- 1.37 Fixed a bug in /C where multiple strings may not have been found,
- a bug in /L ?'s were not always handled correctly. Change my
- Dos error check. I was assuming Spontaneous's code was returning
- carry set on writes, but should have been checking for NOT EQUAL.
-
- 1.38 minor bug fixes & cleaned up code a little.
-